package com.crm.system.service.verifyPhone;

import com.crm.common.model.DhPageInfo;
import com.crm.model.entity.customerManager.Customer;
import com.crm.model.entity.verifyPhone.VerifyPhone;
import com.crm.model.qo.cluePoolManager.CustomerOnlineFollowQO;
import com.crm.model.qo.verifyPhone.VerifyPhoneQO;
import com.crm.model.qo.verifyPhone.VerifyPhoneReportQO;
import com.crm.model.vo.verifyPhone.VerifyPhoneReportVO;
import com.crm.model.vo.verifyPhone.VerifyPhoneVO;

import java.util.List;
import java.util.Map;

/**
 * @Author renshaorong
 * @Date 2021/07/07 1:58 下午
 */
public interface VerifyPhoneService {

    /**
     * 获取分页列表
     * @param pageIndex
     * @param pageSize
     * @param sortName
     * @param sortOrder
     * @param verifyPhoneQO
     * @return
     */
    DhPageInfo<VerifyPhoneVO> getVerifyPhoneList(Integer pageIndex, Integer pageSize, String sortName, String sortOrder, VerifyPhoneQO verifyPhoneQO);

    /**
     * 拨打核实电话
     * @Author pym
     * @Date  2021/7/9 10:57
     * @param customerOnlineFollowQO 电话信息
     * @return {@link {java.lang.Boolean}}
     */
    String callVerifyPhone(CustomerOnlineFollowQO customerOnlineFollowQO);



    /**
     * 修改信息
     * @param verifyPhone
     * @return
     */
    boolean updateVerifyPhoneInfo(VerifyPhone verifyPhone);

    /**
     * 获取企业列表
     * @return
     */
    List<Customer> getCompCustomerList();

    /**
     * 关联企业
     * @param verifyId
     * @param customerId
     * @return
     */
    boolean bindCustomer(String verifyId, String customerId,String contactName);


    /**
     * @Description: 电话核实报表
     * @Param: [reportQO]
     * @Return: java.util.List<com.crm.model.vo.verifyPhone.VerifyPhoneReportVO>
     * @Author: lixq-f
     * @Date: 2021/7/13
    **/
    List<VerifyPhoneReportVO> getVerifyPhoneReport(VerifyPhoneReportQO reportQO);

    /**
     * 获取通话录音
     * @param verifyId
     * @return
     */
    String getCallRecord(String verifyId);

    /**
     * 核实电话 管理端表格数据，返回分公司下个人 <30 <60 <90 >90 总时长数据
     * @param dateUnit
     * @return
     */
    DhPageInfo<VerifyPhoneReportVO> getDurationByCompanyId(Integer pageIndex, Integer pageSize, Integer dateUnit);

    /**
     * 核实电话 超管端表格数据，返回各分公司下 <30 <60 <90 >90 总时长数据 平均数
     * @param dateUnit
     * @return
     */
    List<Map<String,Object>> getAllDurationGroupByCompanyId(Integer dateUnit);
}
